A large portion of today's Internet video content is consumed in web browsers via adaptive hypertext transfer protocol (HTTP) streaming. The technology is supported by many commercially deployed systems. The video delivery mechanism driven by the client device, e.g., computer, laptop, tablet, smart phone, etc., can dynamically change the rate and quality of the video it requests, segment by segment, based on varying network conditions, such as available bandwidth and CPU resources.
While the adaptive streaming approach is effective for a single adaptive HTTP streaming client, which can readily respond to changes of a last-mile “bottleneck” link, many technical issues arise when multiple clients with currently deployed rate adaptation logic are competing for shared bandwidth. Under such a scenario, the video source rate requests from the individual client devices often fail to converge to their underlying fair share of bandwidth over time. This situation, colloquially termed the “multi-client oscillation problem,” leads to constant quality oscillations in the received video stream.